package es.acaixa.dcontroladores;

import java.util.List;

import es.acaixa.cnegocios.Funcionario;
import es.acaixa.epersistencia.RepositorioFuncionario;
import es.acaixa.fexcecoes.FuncionarioExistenteException;
import es.acaixa.fexcecoes.FuncionarioInexistenteException;
import es.acaixa.fexcecoes.SemAniversariantesException;
import es.acaixa.fexcecoes.SemFuncionariosException;

public class ControladorFuncionario {
	
	private RepositorioFuncionario repositorio; 

	public ControladorFuncionario() {
		this.repositorio = new RepositorioFuncionario();
	}
	
	public void cadastrar(Funcionario novoFuncionario) throws FuncionarioExistenteException, Exception {
		this.repositorio.cadastrar(novoFuncionario);
	}
	
	public Funcionario consultar(String cpf) throws FuncionarioInexistenteException, Exception {
		Funcionario funcionario = this.repositorio.consultar(cpf);
		
		if(funcionario != null){
			return funcionario;
		}else{
			throw new FuncionarioInexistenteException(cpf);
		}
	}
	
	public void remover(String cpf) throws FuncionarioInexistenteException, Exception{
		this.repositorio.remover(cpf);		
	}
	
	public void atualizar(String cpf, Funcionario novoFuncionario) throws FuncionarioInexistenteException, Exception{
		this.repositorio.atualizar(novoFuncionario, cpf);
	}
	
	public List<Funcionario> listar() throws SemFuncionariosException{
		return this.repositorio.listar();
	}
	
	public List<Funcionario> listarAniversariantes() throws SemFuncionariosException, SemAniversariantesException{
		return this.repositorio.listarAniversariantes();
	}

	
}